import { defineStore } from 'pinia'
import { reactive } from 'vue'
import { getAllMonitorData } from '../api/monitorService.js'

export const useMonitorStore = defineStore('monitor', () => {
  // 响应式数据对象，匹配接口返回格式
  const monitorData = reactive({
    loading: true,
    error: '',

    // 精炼炉电流值
    currentData: {
      cysj: '', // 采集时间
      yccdlA: '', // 一次侧A相电流
      yccdlB: '', // 一次侧B相电流
      yccdlC: '', // 一次侧C相电流
      eccdlA: '', // 二次侧A相电流
      eccdlB: '', // 二次侧B相电流
      eccdlC: '', // 二次侧C相电流
    },
    // 精炼炉电压值
    voltageData: {
      cysj: '', // 采集时间
      yccdlA: '', // 一次侧A相电压
      yccdlB: '', // 一次侧B相电压
      yccdlC: '', // 一次侧C相电压
      eccdlA: '', // 二次侧A相电压
      eccdlB: '', // 二次侧B相电压
      eccdlC: '', // 二次侧C相电压
    },
    // 精炼炉设定电流
    setCurrentData: {
      cysj: '', // 采集时间
      jlbyqecsddy: '', // 精炼变压器二次设定电压
      jlbyqecdl: '', // 精炼变压器二次电流
      jldh: '', // 精炼电耗
      jllAxsddl: '', // 精炼A相设定电流
      jllBxsddl: '', // 精炼B相设定电流
      jllCxsddl: '', // 精炼C相设定电流
    },
    dustMonitor1: {
      cysj: '', // 采集时间
      hychl: '', // 烟尘含量
      hyqhl: '', // 氧气含量
      hls: '', // 流速值
      hyl: '', // 压力值
      hwd: '', // 温度值
      hgkll: '', // 工况流量
    },
    dustMonitor2: {
      cysj: '', // 采集时间
      hychl: '', // 烟尘含量
      hyqhl: '', // 氧气含量
      hls: '', // 流速值
      hyl: '', // 压力值
      hwd: '', // 温度值
      hgkll: '', // 工况流量
    },
    dustMonitor3: {
      cysj: '', // 采集时间
      hychl: '', // 烟尘含量
      hyqhl: '', // 氧气含量
      hls: '', // 流速值
      hyl: '', // 压力值
      hwd: '', // 温度值
      hgkll: '', // 工况流量
    },
  })

  // 加载所有监控数据
  const loadAllMonitorData = async () => {
    try {
      monitorData.loading = true
      monitorData.error = ''

      const data = await getAllMonitorData()

      // 存储获取的数据
      Object.assign(monitorData, data)
    } catch (err) {
      monitorData.error = '数据加载失败，请稍后重试'
      console.error('获取监测数据失败:', err)
    } finally {
      monitorData.loading = false
    }
  }

  return {
    monitorData,
    loadAllMonitorData,
  }
})
